var runtime.sched
427 uses
runtime (current package)
cgocall.go#L421: hz := sched.profilehz
debug.go#L21: lock(&sched.lock)
debug.go#L23: unlock(&sched.lock)
debug.go#L56: total := sched.totalMutexWaitTime.Load()
debug.go#L58: total += sched.totalRuntimeLockWaitTime.Load()
debugcall.go#L248: lock(&sched.lock)
debugcall.go#L250: unlock(&sched.lock)
lock_spinbit.go#L136: case &sched.lock:
metrics.go#L321: sched.stwTotalTimeGC.write(out)
metrics.go#L447: sched.timeToRun.write(out)
metrics.go#L452: sched.stwStoppingTimeGC.write(out)
metrics.go#L457: sched.stwStoppingTimeOther.write(out)
metrics.go#L462: sched.stwTotalTimeGC.write(out)
metrics.go#L467: sched.stwTotalTimeOther.write(out)
mgc.go#L1131: sched.idleTime.Store(0)
mgc.go#L1509: lock(&sched.lock)
mgc.go#L1511: unlock(&sched.lock)
mgc.go#L1826: lock(&sched.sudoglock)
mgc.go#L1828: for sg = sched.sudogcache; sg != nil; sg = sgnext {
mgc.go#L1832: sched.sudogcache = nil
mgc.go#L1833: unlock(&sched.sudoglock)
mgc.go#L1837: lock(&sched.deferlock)
mgc.go#L1841: for d = sched.deferpool; d != nil; d = dlink {
mgc.go#L1845: sched.deferpool = nil
mgc.go#L1846: unlock(&sched.deferlock)
mgclimit.go#L216: sched.idleTime.Add(duration)
mgclimit.go#L477: sched.idleTime.Add(duration)
mgcmark.go#L295: lock(&sched.gFree.lock)
mgcmark.go#L296: list := sched.gFree.stack
mgcmark.go#L297: sched.gFree.stack = gList{}
mgcmark.go#L298: unlock(&sched.gFree.lock)
mgcmark.go#L315: lock(&sched.gFree.lock)
mgcmark.go#L316: sched.gFree.noStack.pushAll(q)
mgcmark.go#L317: unlock(&sched.gFree.lock)
mgcmark.go#L1181: for !(gp.preempt && (preemptible || sched.gcwaiting.Load() || pp.runSafePointFn != 0)) {
mgcmark.go#L1203: for !(gp.preempt && (preemptible || sched.gcwaiting.Load() || pp.runSafePointFn != 0)) {
mstats.go#L461: lock(&sched.sysmonlock)
mstats.go#L501: unlock(&sched.sysmonlock)
mstats.go#L975: s.TotalTime = sched.totaltime + (now-sched.procresizetime)*int64(gomaxprocs)
mstats.go#L976: s.IdleTime += sched.idleTime.Load()
panic.go#L524: if len(pp.deferpool) == 0 && sched.deferpool != nil {
panic.go#L525: lock(&sched.deferlock)
panic.go#L526: for len(pp.deferpool) < cap(pp.deferpool)/2 && sched.deferpool != nil {
panic.go#L527: d := sched.deferpool
panic.go#L528: sched.deferpool = d.link
panic.go#L532: unlock(&sched.deferlock)
panic.go#L583: lock(&sched.deferlock)
panic.go#L584: last.link = sched.deferpool
panic.go#L585: sched.deferpool = first
panic.go#L586: unlock(&sched.deferlock)
proc.go#L384: if !gp.preempt && sched.npidle.Load() > 0 {
proc.go#L473: lock(&sched.sudoglock)
proc.go#L475: for len(pp.sudogcache) < cap(pp.sudogcache)/2 && sched.sudogcache != nil {
proc.go#L476: s := sched.sudogcache
proc.go#L477: sched.sudogcache = s.next
proc.go#L481: unlock(&sched.sudoglock)
proc.go#L539: lock(&sched.sudoglock)
proc.go#L540: last.next = sched.sudogcache
proc.go#L541: sched.sudogcache = first
proc.go#L542: unlock(&sched.sudoglock)
proc.go#L799: lockInit(&sched.lock, lockRankSched)
proc.go#L800: lockInit(&sched.sysmonlock, lockRankSysmon)
proc.go#L801: lockInit(&sched.deferlock, lockRankDefer)
proc.go#L802: lockInit(&sched.sudoglock, lockRankSudog)
proc.go#L827: sched.maxmcount = 10000
proc.go#L874: lock(&sched.lock)
proc.go#L875: sched.lastpoll.Store(nanotime())
proc.go#L883: unlock(&sched.lock)
proc.go#L908: assertLockHeld(&sched.lock)
proc.go#L919: if count > sched.maxmcount {
proc.go#L920: print("runtime: program exceeds ", sched.maxmcount, "-thread limit\n")
proc.go#L930: assertLockHeld(&sched.lock)
proc.go#L932: if sched.mnext+1 < sched.mnext {
proc.go#L935: id := sched.mnext
proc.go#L936: sched.mnext++
proc.go#L950: lock(&sched.lock)
proc.go#L972: unlock(&sched.lock)
proc.go#L1017: sched.nmspinning.Add(1)
proc.go#L1018: sched.needspinning.Store(0)
proc.go#L1109: sched.stopwait = freezeStopWait
proc.go#L1110: sched.gcwaiting.Store(true)
proc.go#L1273: sched.totalMutexWaitTime.Add((now - gp.trackingStamp) * gTrackingPeriod)
proc.go#L1295: sched.timeToRun.record(gp.runnableTime)
proc.go#L1575: lock(&sched.lock)
proc.go#L1577: sched.stopwait = gomaxprocs
proc.go#L1578: sched.gcwaiting.Store(true)
proc.go#L1583: sched.stopwait--
proc.go#L1594: sched.stopwait--
proc.go#L1610: sched.stopwait--
proc.go#L1612: wait := sched.stopwait > 0
proc.go#L1613: unlock(&sched.lock)
proc.go#L1619: if notetsleep(&sched.stopnote, 100*1000) {
proc.go#L1620: noteclear(&sched.stopnote)
proc.go#L1630: sched.stwStoppingTimeGC.record(startTime)
proc.go#L1632: sched.stwStoppingTimeOther.record(startTime)
proc.go#L1641: if sched.stopwait != 0 {
proc.go#L1695: lock(&sched.lock)
proc.go#L1703: sched.gcwaiting.Store(false)
proc.go#L1704: if sched.sysmonwait.Load() {
proc.go#L1705: sched.sysmonwait.Store(false)
proc.go#L1706: notewakeup(&sched.sysmonnote)
proc.go#L1708: unlock(&sched.lock)
proc.go#L1735: sched.stwTotalTimeGC.record(totalTime)
proc.go#L1737: sched.stwTotalTimeOther.record(totalTime)
proc.go#L1927: lock(&sched.lock)
proc.go#L1928: sched.nmfreed++
proc.go#L1930: unlock(&sched.lock)
proc.go#L1952: lock(&sched.lock)
proc.go#L1976: mp.freelink = sched.freem
proc.go#L1977: sched.freem = mp
proc.go#L1978: unlock(&sched.lock)
proc.go#L1981: sched.totalRuntimeLockWaitTime.Add(mp.mLockProfile.waitTime.Load())
proc.go#L1990: lock(&sched.lock)
proc.go#L1991: sched.nmfreed++
proc.go#L1993: unlock(&sched.lock)
proc.go#L2071: lock(&sched.lock)
proc.go#L2072: if sched.safePointWait != 0 {
proc.go#L2075: sched.safePointWait = gomaxprocs - 1
proc.go#L2076: sched.safePointFn = fn
proc.go#L2092: for p := sched.pidle.ptr(); p != nil; p = p.link.ptr() {
proc.go#L2095: sched.safePointWait--
proc.go#L2099: wait := sched.safePointWait > 0
proc.go#L2100: unlock(&sched.lock)
proc.go#L2133: if notetsleep(&sched.safePointNote, 100*1000) {
proc.go#L2134: noteclear(&sched.safePointNote)
proc.go#L2140: if sched.safePointWait != 0 {
proc.go#L2149: lock(&sched.lock)
proc.go#L2150: sched.safePointFn = nil
proc.go#L2151: unlock(&sched.lock)
proc.go#L2174: sched.safePointFn(p)
proc.go#L2175: lock(&sched.lock)
proc.go#L2176: sched.safePointWait--
proc.go#L2177: if sched.safePointWait == 0 {
proc.go#L2178: notewakeup(&sched.safePointNote)
proc.go#L2180: unlock(&sched.lock)
proc.go#L2218: if sched.freem != nil {
proc.go#L2219: lock(&sched.lock)
proc.go#L2221: for freem := sched.freem; freem != nil; {
proc.go#L2250: sched.freem = newList
proc.go#L2251: unlock(&sched.lock)
proc.go#L2387: sched.ngsys.Add(-1)
proc.go#L2454: gp.goid = sched.goidgen.Add(1)
proc.go#L2465: sched.ngsys.Add(1)
proc.go#L2522: sched.ngsys.Add(1)
proc.go#L2561: lock(&sched.lock)
proc.go#L2563: unlock(&sched.lock)
proc.go#L2884: lock(&sched.lock)
proc.go#L2885: sched.nmsys++
proc.go#L2887: unlock(&sched.lock)
proc.go#L2925: lock(&sched.lock)
proc.go#L2927: unlock(&sched.lock)
proc.go#L2974: lock(&sched.lock)
proc.go#L2986: unlock(&sched.lock)
proc.go#L3009: unlock(&sched.lock)
proc.go#L3019: lock(&sched.lock)
proc.go#L3027: unlock(&sched.lock)
proc.go#L3056: if !runqempty(pp) || sched.runqsize != 0 {
proc.go#L3072: if sched.nmspinning.Load()+sched.npidle.Load() == 0 && sched.nmspinning.CompareAndSwap(0, 1) { // TODO: fast atomic
proc.go#L3073: sched.needspinning.Store(0)
proc.go#L3077: lock(&sched.lock)
proc.go#L3078: if sched.gcwaiting.Load() {
proc.go#L3081: sched.stopwait--
proc.go#L3082: if sched.stopwait == 0 {
proc.go#L3083: notewakeup(&sched.stopnote)
proc.go#L3085: unlock(&sched.lock)
proc.go#L3089: sched.safePointFn(pp)
proc.go#L3090: sched.safePointWait--
proc.go#L3091: if sched.safePointWait == 0 {
proc.go#L3092: notewakeup(&sched.safePointNote)
proc.go#L3095: if sched.runqsize != 0 {
proc.go#L3096: unlock(&sched.lock)
proc.go#L3102: if sched.npidle.Load() == gomaxprocs-1 && sched.lastpoll.Load() != 0 {
proc.go#L3103: unlock(&sched.lock)
proc.go#L3112: unlock(&sched.lock)
proc.go#L3135: if sched.nmspinning.Load() != 0 || !sched.nmspinning.CompareAndSwap(0, 1) {
proc.go#L3147: lock(&sched.lock)
proc.go#L3150: if sched.nmspinning.Add(-1) < 0 {
proc.go#L3153: unlock(&sched.lock)
proc.go#L3161: unlock(&sched.lock)
proc.go#L3219: if !sched.gcwaiting.Load() {
proc.go#L3226: if sched.nmspinning.Add(-1) < 0 {
proc.go#L3231: lock(&sched.lock)
proc.go#L3234: sched.stopwait--
proc.go#L3235: if sched.stopwait == 0 {
proc.go#L3236: notewakeup(&sched.stopnote)
proc.go#L3238: unlock(&sched.lock)
proc.go#L3274: hz := sched.profilehz
proc.go#L3301: if sched.gcwaiting.Load() {
proc.go#L3341: if pp.schedtick%61 == 0 && sched.runqsize > 0 {
proc.go#L3342: lock(&sched.lock)
proc.go#L3344: unlock(&sched.lock)
proc.go#L3366: if sched.runqsize != 0 {
proc.go#L3367: lock(&sched.lock)
proc.go#L3369: unlock(&sched.lock)
proc.go#L3382: if netpollinited() && netpollAnyWaiters() && sched.lastpoll.Load() != 0 {
proc.go#L3402: if mp.spinning || 2*sched.nmspinning.Load() < gomaxprocs-sched.npidle.Load() {
proc.go#L3475: lock(&sched.lock)
proc.go#L3476: if sched.gcwaiting.Load() || pp.runSafePointFn != 0 {
proc.go#L3477: unlock(&sched.lock)
proc.go#L3480: if sched.runqsize != 0 {
proc.go#L3482: unlock(&sched.lock)
proc.go#L3485: if !mp.spinning && sched.needspinning.Load() == 1 {
proc.go#L3488: unlock(&sched.lock)
proc.go#L3495: unlock(&sched.lock)
proc.go#L3536: if sched.nmspinning.Add(-1) < 0 {
proc.go#L3551: lock(&sched.lock)
proc.go#L3552: if sched.runqsize != 0 {
proc.go#L3559: unlock(&sched.lock)
proc.go#L3565: unlock(&sched.lock)
proc.go#L3601: if netpollinited() && (netpollAnyWaiters() || pollUntil != 0) && sched.lastpoll.Swap(0) != 0 {
proc.go#L3602: sched.pollUntil.Store(pollUntil)
proc.go#L3626: sched.pollUntil.Store(0)
proc.go#L3627: sched.lastpoll.Store(now)
proc.go#L3634: lock(&sched.lock)
proc.go#L3636: unlock(&sched.lock)
proc.go#L3660: pollerPollUntil := sched.pollUntil.Load()
proc.go#L3674: if sched.runqsize != 0 {
proc.go#L3681: if netpollinited() && netpollAnyWaiters() && sched.lastpoll.Load() != 0 {
proc.go#L3707: if sched.gcwaiting.Load() {
proc.go#L3774: lock(&sched.lock)
proc.go#L3778: unlock(&sched.lock)
proc.go#L3781: unlock(&sched.lock)
proc.go#L3841: lock(&sched.lock)
proc.go#L3844: unlock(&sched.lock)
proc.go#L3851: unlock(&sched.lock)
proc.go#L3858: unlock(&sched.lock)
proc.go#L3863: unlock(&sched.lock)
proc.go#L3872: if sched.lastpoll.Load() == 0 {
proc.go#L3877: pollerPollUntil := sched.pollUntil.Load()
proc.go#L3896: nmspinning := sched.nmspinning.Add(-1)
proc.go#L3946: lock(&sched.lock)
proc.go#L3950: unlock(&sched.lock)
proc.go#L3956: unlock(&sched.lock)
proc.go#L3963: lock(&sched.lock)
proc.go#L3965: unlock(&sched.lock)
proc.go#L3970: npidle := int(sched.npidle.Load())
proc.go#L3980: lock(&sched.lock)
proc.go#L3982: unlock(&sched.lock)
proc.go#L4059: if sched.disable.user && !schedEnabled(gp) {
proc.go#L4063: lock(&sched.lock)
proc.go#L4067: unlock(&sched.lock)
proc.go#L4069: sched.disable.runnable.pushBack(gp)
proc.go#L4070: sched.disable.n++
proc.go#L4071: unlock(&sched.lock)
proc.go#L4188: lock(&sched.lock)
proc.go#L4190: unlock(&sched.lock)
proc.go#L4341: sched.ngsys.Add(-1)
proc.go#L4507: if sched.sysmonwait.Load() {
proc.go#L4524: if sched.gcwaiting.Load() {
proc.go#L4556: lock(&sched.lock)
proc.go#L4557: if sched.sysmonwait.Load() {
proc.go#L4558: sched.sysmonwait.Store(false)
proc.go#L4559: notewakeup(&sched.sysmonnote)
proc.go#L4561: unlock(&sched.lock)
proc.go#L4568: lock(&sched.lock)
proc.go#L4570: if sched.stopwait > 0 && atomic.Cas(&pp.status, _Psyscall, _Pgcstop) {
proc.go#L4586: if sched.stopwait--; sched.stopwait == 0 {
proc.go#L4587: notewakeup(&sched.stopnote)
proc.go#L4592: unlock(&sched.lock)
proc.go#L4745: if sched.disable.user && !schedEnabled(gp) {
proc.go#L4772: if sched.stopwait == freezeStopWait {
proc.go#L4792: if sched.pidle != 0 {
proc.go#L4828: lock(&sched.lock)
proc.go#L4830: if pp != nil && sched.sysmonwait.Load() {
proc.go#L4831: sched.sysmonwait.Store(false)
proc.go#L4832: notewakeup(&sched.sysmonnote)
proc.go#L4834: unlock(&sched.lock)
proc.go#L4863: lock(&sched.lock)
proc.go#L4878: } else if sched.sysmonwait.Load() {
proc.go#L4879: sched.sysmonwait.Store(false)
proc.go#L4880: notewakeup(&sched.sysmonnote)
proc.go#L4882: unlock(&sched.lock)
proc.go#L5101: sched.ngsys.Add(1)
proc.go#L5135: pp.goidcache = sched.goidgen.Add(_GoidCacheBatch)
proc.go#L5232: lock(&sched.gFree.lock)
proc.go#L5233: sched.gFree.noStack.pushAll(noStackQ)
proc.go#L5234: sched.gFree.stack.pushAll(stackQ)
proc.go#L5235: sched.gFree.n += inc
proc.go#L5236: unlock(&sched.gFree.lock)
proc.go#L5244: if pp.gFree.empty() && (!sched.gFree.stack.empty() || !sched.gFree.noStack.empty()) {
proc.go#L5245: lock(&sched.gFree.lock)
proc.go#L5249: gp := sched.gFree.stack.pop()
proc.go#L5251: gp = sched.gFree.noStack.pop()
proc.go#L5256: sched.gFree.n--
proc.go#L5260: unlock(&sched.gFree.lock)
proc.go#L5316: lock(&sched.gFree.lock)
proc.go#L5317: sched.gFree.noStack.pushAll(noStackQ)
proc.go#L5318: sched.gFree.stack.pushAll(stackQ)
proc.go#L5319: sched.gFree.n += inc
proc.go#L5320: unlock(&sched.gFree.lock)
proc.go#L5435: n := int32(atomic.Loaduintptr(&allglen)) - sched.gFree.n - sched.ngsys.Load()
proc.go#L5449: return int32(sched.mnext - sched.nmfreed)
proc.go#L5617: lock(&sched.lock)
proc.go#L5618: sched.profilehz = hz
proc.go#L5619: unlock(&sched.lock)
proc.go#L5671: assertLockHeld(&sched.lock)
proc.go#L5749: assertLockHeld(&sched.lock)
proc.go#L5764: if sched.procresizetime != 0 {
proc.go#L5765: sched.totaltime += int64(old) * (now - sched.procresizetime)
proc.go#L5767: sched.procresizetime = now
proc.go#L5976: lock(&sched.lock)
proc.go#L5977: sched.nmidlelocked += v
proc.go#L5981: unlock(&sched.lock)
proc.go#L5988: assertLockHeld(&sched.lock)
proc.go#L6016: run := mcount() - sched.nmidle - sched.nmidlelocked - sched.nmsys
proc.go#L6021: print("runtime: checkdead: nmidle=", sched.nmidle, " nmidlelocked=", sched.nmidlelocked, " mcount=", mcount(), " nmsys=", sched.nmsys, "\n")
proc.go#L6022: unlock(&sched.lock)
proc.go#L6040: unlock(&sched.lock)
proc.go#L6045: unlock(&sched.lock) // unlock so that GODEBUG=scheddetail=1 doesn't hang
proc.go#L6059: unlock(&sched.lock)
proc.go#L6066: unlock(&sched.lock)
proc.go#L6072: sched.nmspinning.Add(1)
proc.go#L6087: unlock(&sched.lock) // unlock so that GODEBUG=scheddetail=1 doesn't hang
proc.go#L6111: lock(&sched.lock)
proc.go#L6112: sched.nmsys++
proc.go#L6114: unlock(&sched.lock)
proc.go#L6147: if debug.schedtrace <= 0 && (sched.gcwaiting.Load() || sched.npidle.Load() == gomaxprocs) {
proc.go#L6148: lock(&sched.lock)
proc.go#L6149: if sched.gcwaiting.Load() || sched.npidle.Load() == gomaxprocs {
proc.go#L6153: sched.sysmonwait.Store(true)
proc.go#L6154: unlock(&sched.lock)
proc.go#L6165: syscallWake = notetsleep(&sched.sysmonnote, sleep)
proc.go#L6169: lock(&sched.lock)
proc.go#L6170: sched.sysmonwait.Store(false)
proc.go#L6171: noteclear(&sched.sysmonnote)
proc.go#L6178: unlock(&sched.lock)
proc.go#L6181: lock(&sched.sysmonlock)
proc.go#L6191: lastpoll := sched.lastpoll.Load()
proc.go#L6193: sched.lastpoll.CompareAndSwap(lastpoll, now)
proc.go#L6253: unlock(&sched.sysmonlock)
proc.go#L6313: if runqempty(pp) && sched.nmspinning.Load()+sched.npidle.Load() > 0 && pd.syscallwhen+10*1000*1000 > now {
proc.go#L6406: lock(&sched.lock)
proc.go#L6407: print("SCHED ", (now-starttime)/1e6, "ms: gomaxprocs=", gomaxprocs, " idleprocs=", sched.npidle.Load(), " threads=", mcount(), " spinningthreads=", sched.nmspinning.Load(), " needspinning=", sched.needspinning.Load(), " idlethreads=", sched.nmidle, " runqueue=", sched.runqsize)
proc.go#L6409: print(" gcwaiting=", sched.gcwaiting.Load(), " nmidlelocked=", sched.nmidlelocked, " stopwait=", sched.stopwait, " sysmonwait=", sched.sysmonwait.Load(), "\n")
proc.go#L6441: unlock(&sched.lock)
proc.go#L6483: unlock(&sched.lock)
proc.go#L6492: lock(&sched.lock)
proc.go#L6493: if sched.disable.user == !enable {
proc.go#L6494: unlock(&sched.lock)
proc.go#L6497: sched.disable.user = !enable
proc.go#L6499: n := sched.disable.n
proc.go#L6500: sched.disable.n = 0
proc.go#L6501: globrunqputbatch(&sched.disable.runnable, n)
proc.go#L6502: unlock(&sched.lock)
proc.go#L6503: for ; n != 0 && sched.npidle.Load() != 0; n-- {
proc.go#L6507: unlock(&sched.lock)
proc.go#L6516: assertLockHeld(&sched.lock)
proc.go#L6518: if sched.disable.user {
proc.go#L6530: assertLockHeld(&sched.lock)
proc.go#L6532: mp.schedlink = sched.midle
proc.go#L6533: sched.midle.set(mp)
proc.go#L6534: sched.nmidle++
proc.go#L6544: assertLockHeld(&sched.lock)
proc.go#L6546: mp := sched.midle.ptr()
proc.go#L6548: sched.midle = mp.schedlink
proc.go#L6549: sched.nmidle--
proc.go#L6560: assertLockHeld(&sched.lock)
proc.go#L6562: sched.runq.pushBack(gp)
proc.go#L6563: sched.runqsize++
proc.go#L6572: assertLockHeld(&sched.lock)
proc.go#L6574: sched.runq.push(gp)
proc.go#L6575: sched.runqsize++
proc.go#L6585: assertLockHeld(&sched.lock)
proc.go#L6587: sched.runq.pushBackAll(*batch)
proc.go#L6588: sched.runqsize += n
proc.go#L6595: assertLockHeld(&sched.lock)
proc.go#L6597: if sched.runqsize == 0 {
proc.go#L6601: n := sched.runqsize/gomaxprocs + 1
proc.go#L6602: if n > sched.runqsize {
proc.go#L6603: n = sched.runqsize
proc.go#L6612: sched.runqsize -= n
proc.go#L6614: gp := sched.runq.pop()
proc.go#L6617: gp1 := sched.runq.pop()
proc.go#L6659: assertLockHeld(&sched.lock)
proc.go#L6671: pp.link = sched.pidle
proc.go#L6672: sched.pidle.set(pp)
proc.go#L6673: sched.npidle.Add(1)
proc.go#L6688: assertLockHeld(&sched.lock)
proc.go#L6690: pp := sched.pidle.ptr()
proc.go#L6698: sched.pidle = pp.link
proc.go#L6699: sched.npidle.Add(-1)
proc.go#L6716: assertLockHeld(&sched.lock)
proc.go#L6723: sched.needspinning.Store(1)
proc.go#L6842: lock(&sched.lock)
proc.go#L6844: unlock(&sched.lock)
proc.go#L6876: lock(&sched.lock)
proc.go#L6878: unlock(&sched.lock)
proc.go#L7129: lock(&sched.lock)
proc.go#L7130: out = int(sched.maxmcount)
proc.go#L7132: sched.maxmcount = 0x7fffffff
proc.go#L7134: sched.maxmcount = int32(in)
proc.go#L7137: unlock(&sched.lock)
proc.go#L7212: if i >= active_spin || ncpu <= 1 || gomaxprocs <= sched.npidle.Load()+sched.nmspinning.Load()+1 {
runtime2.go#L1198: sched schedt
trace.go#L228: lock(&sched.sysmonlock)
trace.go#L305: unlock(&sched.sysmonlock)
trace.go#L490: lock(&sched.lock)
trace.go#L495: for mp := sched.freem; mp != nil; mp = mp.freelink {
trace.go#L499: unlock(&sched.lock)
traceruntime.go#L682: assertLockHeld(&sched.lock)